其他
2024年移动端技术探索
The following article is from 进击的音视频技术 Author 轻口味
2024马上就要过半了,本文试着总结大家前半年做的事情,探索出移动端目前还可以支持的点以及未来”比较“有前途的方向。
这一章我们从大厂和行业大会两方面的信息分析2024年移动端的诉求点。
大厂
阿里、支付宝
原生技术,遵循Platform First理念,贴近原生系统、充分挖掘系统组件和特性,沉淀极致性能的渲染引擎/动态化引擎/原子能力集,同时与厂商深度合作,探索站内外用户触达多通道,用技术做用增; 底层技术,遵循First Principle理念,深入虚拟机/字节码/汇编指令等,探索稳定性/性能/包体的极致边界,深入系统底层机制与原理,必要时帮系统打补丁; 跨端技术,遵循Cross Platform理念,抹平多系统/平台差异,充分利用业界较为成熟的前端生态,沉淀自主可控的渲染引擎/图形引擎/脚本引擎,向业务提供符合W3C标准的前端友好的基础设施; 工程技术,遵循Productivity First理念,支撑大规模多团队协作式研发,深挖工程组织/编译构建/虚拟机调度等技术,融合前端/客户端研发工作流,向业务提供高效稳定的工程体系;同时持续升级Low Code技术,赋能业务运营同学快速搭建页面上线,实现产品运营需求的想发就发; 网络技术,拥抱网络协议新标准,重点优化移动弱网场景,以更小带宽,实现更快的传输,面对复杂移动场景,提供弹性可伸缩的网络服务,平衡前后台的业务体验; 应用服务技术,遵循API First理念,解决接口大规模稳定快速投放,扩展丰富的请求模式/传输协议/压缩算法等,探索端云交互一体化新模式和端云研发新模式; AI技术,依托于大模型近来的突飞猛进,我们承担着进一步提升淘宝业务研发效率和体验的使命,包括多模态代码生成(一句话需求生成逻辑代码/一张视觉稿生成UI代码/基于一段真实代码生成单测代码)、问题诊断(线上Crash诊断/端到端问题自动定位/构建失败诊断/场景化性能诊断调优)、研发助理(领域知识答疑/最佳实践问答)等等。
原生动态化技术:基于play core的动态化方案,具备了Replugin(360)和Qigsaw(iQiyi)合并的优势,既支持插件化,又支持组件动态化; 原生研发框架DX 4.0,以Kotlin+Compose为标准,声明式/响应式/状态管理/一码多屏为特性,基于原生系统UIKit构建原生渲染管线、基于KMP构建面向多平台的编译体系,支持原生组件和能力的快速定制和扩展; 自绘渲染引擎Weex 2.0,自建符合 Web 标准的自绘渲染引擎,包含执行代码/节点构建/布局/绘制/合成/光栅化/上屏等完整渲染管线;建立字节码离线编译的工程体系,编译期可进行耗时更高更彻底的优化,并支持标准 ESM 模块、多文件拼接、动态执行脚本、模块搭建等能力;弹性可扩展的容器和插件能力,支持全页/浮层/卡片/小部件/Embed 等多种形态及插件; 流式SSR技术,业界率先尝试零运维流式 SSR 托管服务,简化流式 SSR 页面研发成本,相对业内中心化 SSR 渲染方案,引入了 CDN ER 的边缘能力,降低客户端渲染压力,并实现就近的渲染快照,实现极致的 FCP 时间; LSM对象存储技术,业界腾讯开源的MMKV、mongodb的子项目realm都是针对移动端的对象/键值存储方案,分别使用了MVCC等存储模型用于提升高并发场景的性能,但没有针对Flash存储(SSD/UFS/)特性的优化。sqlite的btree模型对大对象键值存储的读写放大系数较高。我们针对Flash存储特性(块读写机制、垃圾回收机制等)实现的LSM Tree,支持了内存压缩、冷热分区、碎片化抑制等特性,在读写放大系数和吞吐性能上有显著优势,大量应用在移动端上图片及小文件缓存等场景; 终端APP到全链路的观测与性能技术,立足Android/iOS原生特性提供APP维度的观测套件,以及各类APP高性能框架、组件,实现端性能持续优化与业务迭代;立足OpenTelemetry提供终端访问云上服务的全链路分布式技术规范与观测套件,实现终端RPC、远程配置、消息、大文件上传/下载等高性能中间件,支撑业务链路优化与治理; 终端工程构建技术,以流水线为主要支撑,通过灵活的配置插件形成统一的构建流水线,我们沉淀了终端丰富的工程构建工具链,支持iOS/Android/PC/IOT等多终端的自定义,同时结合私有化部署能够完全开放定制整个工程构建生产链路; 高性能网络技术,在IETF国际标准组织,主导Multipath-QUIC协议标准化进程(作为协议第一作者);有4篇网络领域顶级学术会议论文和期刊收录,包括网络学术Top1顶会SIGCOMM 21发表论文<XLINK>/顶会NSDI收录<TECC>等;开源国内首个标准化协议库XQUIC(git star 1.5K)/开源高性能云原生网关Tengine(git star 12.2K);网络领域专利授权超过20个以上。
腾讯、微信
无障碍功能框架:如何让残疾/老龄群体更好使用微信? Android微信客户端是如何支持R8构建的? 视频号直播:如何进一步降低功耗占用? 从入门到精通:如何解决C++模板代码膨胀问题? 五年沉淀,微信全平台终端数据库WCDB迎来重大升级!
百度
字节、抖音
京东
滴滴
美团
小红书
行业大会
自研OS时代的大终端 钉钉 Apple Vision Pro 创新之旅。 突破开发与测试的技术栈壁垒——注入式方案在性能调优与自动化测试中的运用。 Android 工程元数据配置系统:助力超大型工程研发效能。 自研 OS 时代的大终端(HarmonyOS 专题) 高德地图的鸿蒙化经验——追求极致体验。 闲鱼应用基于 Kun/Flutter 在鸿蒙 OS 上的移植实践。 Taro 适配鸿蒙的框架原理和性能优化。 小红书鸿蒙一多工程实践——基于鸿蒙一多特性打造多设备使用体验。 大前端 MIX:饿了么小程序从端智能到智能体验的探索。 Rust 如何引领前端基建新潮流以及字节跳动的应用。 Kotlin Multiplatform 基于 Bazel 的逻辑层跨平台 (iOS、Android、Harmony) 实践。 Web 前端技术在智能电动汽车行业的探索。 Web 前端技术在智能电动汽车行业的探索。
移动端主要是鸿蒙方向为主,还有一部分是提效相关的(跨段等手段),还有就是钉钉在Version Pro中的尝试这三个方向。
通过上面的分析我们把移动端分成下面几个方向讨论:
业务迭代
鸿蒙
系统应用/Framework/驱动开发
提效
XR
AI
在[[2023移动端技术探索]]中分析的性能优化、架构设计、开发平台搭建、音视频方向目前都没有太大的潜力,性能优化在经过前几年的努力,现在一方面趋于稳定了,另一方面配套的工具已经搭建好了,当做常规需求消化即可;架构设计、平台搭建因为没有增长,所以也不再需要那么多轮子了;音视频方向也建设的七七八八,顶不住的直接采购也是不错的选择,所以这些方向没有单独讨论的必要了。
最后推荐一下我做的网站,玩Android: wanandroid.com ,包含详尽的知识体系、好用的工具,还有本公众号文章合集,欢迎体验和收藏!
推荐阅读:
扫一扫 关注我的公众号
如果你想要跟大家分享你的文章,欢迎投稿~
┏(^0^)┛明天见!